# Player prefs

<p align="center" width="100%">
  <img src="https://dev-cs.ru/data/resource_icons/1/1546.jpg?1679073113">
</p>

Позволяет легко управлять и хранить предпочтения игроков, такие как шапки, музыка и другие настройки.

С помощью этого плагина игроки могут легко сохранять и загружать свои предпочтения, даже на разных серверах. Это означает, что они могут быстро и легко вернуться к своим любимым предпочтениям, не прибегая к ручной настройке параметров каждый раз, когда они присоединяются к серверу.

Предоставляет удобный API для создания собственных плагинов, позволяющих сохранять предпочтения игроков.
Минимизирован риск потери данных игрока за счет того, что данные игрока хранятся по формату ключ-значение, взамен громоздкой единой строки в JSON формате.
## Использование

1. Из папки `migrations` возьмите файл `create_tables.sql` и импортируйте его в свою базу данных
2. Поместите содержимое папки scripting в каталог вашего сервера (ваша_папка_сервера/cstrike/addons/amxmodx/scripting)
3. Скомпилируйте `player_prefs.sma` [как скомпилировать?](https://dev-cs.ru/threads/246/)
4. Добавьте `player_prefs.amxx` в файл `plugins.ini`.
5. Перезапустите сервер или смените карту
6. После перезапуска сервера или смены карты в папке `/cstrike/addons/amxmodx/configs/plugins` будет создан конфиг с именем `plugin-player_prefs.cfg`. В этом конфиге введите данные для подключения к вашей базе данных
7. Используйте [API](https://gitverse.ru/ufame/player-prefs/content/master/scripting/include/player_prefs.inc) для создания собственных плагинов, которые позволят вам сохранять предпочтения пользователей!

## Пример

```Pawn
#include <amxmodx>
#include <player_prefs>

new const KEY[] = "enable_music";

new const DEFAULT_VALUE[] = "true";

new bool: g_bMusic[MAX_PLAYERS + 1];

public plugin_init() {
    register_plugin("PP Music", "1.0.0", "ufame");

    register_clcmd("say /music", "music_command");
}

public pp_init() {
    pp_set_key_default_value(KEY, DEFAULT_VALUE);
}

public pp_player_loaded(const id) {
    g_bMusic[id] = pp_get_bool(id, KEY);
}

public music_command(id) {
    g_bMusic[id] = !g_bMusic[id];

    pp_set_bool(id, g_bMusic[id]);
}

```